Why don ’ t we simply use a model checker ?
نویسنده
چکیده
Teaching formal methods is notoriously difficult but it is also often argued that formal methods needs to be supported by adequate tools to get better acceptance from the students. In this paper, we focus on teaching a strict programming methodology for imperative program construction, using specifications (i.e., pre/post conditions), invariants, variants (for termination proofs), and decomposition into subproblems. We have built a tool that is able to fully support the methodology for a simple (but non trivial) class of programs. Our tool is implemented with finite domain constraint programming techniques, using the programming language Oz. Since model checking currently is the most widely used technology for program verification, some of our colleagues, and other researchers as well, suggested us that existing tools based on model-checking could very well fit our needs. Moreover, they argued that existing model checkers are implemented in an optimal way, which a naively implemented system could hardly outperform. In this paper, we compare the functionalities of our system with the well-known model checker SMV. We show that SMV is not expressive enough for our needs and that the efficiency of our implementation is sufficient (sometimes better to find interesting counter-examples).
منابع مشابه
Model Checking Basics
In software engineering several formalism are in some form or another compositions of state machines. For example, Statecharts are simply state machines. There is value in simply writing these formal specifications down because it forces the designer to think carefully. However, in highly distributed designs subtle errors (such as deadlocks or race conditions) are very hard to catch simply by i...
متن کاملReachability checking in complex and concurrent software systems using intelligent search methods
Software system verification is an efficient technique for ensuring the correctness of a software product, especially in safety-critical systems in which a small bug may have disastrous consequences. The goal of software verification is to ensure that the product fulfills the requirements. Studies show that the cost of finding and fixing errors in design time is less than finding and fixing the...
متن کاملRehabilitation Services: Why should we use Tele-rehabilitation in IRAN? (Necessity and Application)
People living in rural areas far from health care centers are more likely to require health care services due to their long distances services and poverty(1). Tele-rehabilitation is considered as one of the rapidly emerging and growing areas of telemedicine and a precious model for providing clinical services like assessment, treatment and follows up as well as reducing the length of time for h...
متن کاملارائه یک رتبهبند برای خطایاب معنایی با استفاده از ویژگیهای حساس به متن
Nowadays, a large volume of documents is generated daily. These documents generated by different persons, thus, the documents contain spelling errors. These spelling errors cause quality of the documents are decrease. Therefore, existence of automatic writing assistance tools such as spell checker/corrector can help to improve their quality. Context-sensitive are misspelled words that have been...
متن کامل